Method and apparatus for providing configuration information in a network

ABSTRACT

A method and apparatus for providing message authentication between a first device (such as a provisioning server) and a plurality of other devices (such as cable modems) without need to share a secret key between the first device and the plurality of second devices.

BACKGROUND OF THE INVENTION

[0001] 1. Field of the Invention

[0002] The present invention relates to the field information networking and more specifically to providing configuration from a subscriber to a provider in a network.

[0003] 2. Description of the Related Art

[0004] Communication of configuration information between two devices in a network is known in the art. It is important, especially where the configuration information is communicated over an insecure communication network (such as the internet, publicly switched telephone network (PSTN), a cable network or the like) to allow for verification of the integrity of the configuration information. One way to allow for verification of the configuration information is to provide an integrity check field. The integrity check field is transmitted between the device originating the configuration information (the first device) and the device receiving the configuration information (the second device). The integrity check field may be calculated based on the configuration information and a secret code. Any number of methods are known to calculate an integrity check field. One method is to perform a hash function over the contents of a data file. A hash code is produced. For purposes of this application, the term data file refers to a set of information and is generally some binary encoded representation of the information. The data file may comprise information ranging from, for example, textual information to video. If the contents of the data file are altered, the hash function is designed to provide a high degree of assurance that a different hash value would result of the hash function were performed again on the modified data file. It is possible to perform the hash function on the contents of a data file (which is to be shared) and a secret key. The data file and the hash value are transferred from a first device to a second device. If the second device also knows the secret key, it can perform the same hash function and compare the resulting hash value with the hash value received from the first device. If the hash values match, the second device can know with a high degree of reliability that the data file was not changed in route.

[0005] One method of performing message authentication using a cryptographic hash function is described in Network Working Group Request for Comments (RFC) 2104, February, 1997 titled “HMAC: Keyed-Hashing for Message Authentication”. One cryptographic hash function discussed in RFC 2104 is the so-called MD5 which is described in greater detail in Rivest, R., “The MD5 Message-Digest Algorithm”, RFC 1321, April 1992.

[0006] One issue that exists message authentication using a cryptographic hash function is that it requires the first device and the second device to share the secret information. However, if the secret information is transmitted over the insecure communication network, it may be observed by a third party (an interloper). The interloper may then intercept the configuration file in route between the first device and the second device and modify the configuration file. As the secret is known to the interloper, the interloper may also recalculate the integrity check field so that the change to the configuration file will not be detectable by the second device.

[0007] Of course, it is possible to communicate the secret code over a secure communication channel (for example, it may be encrypted in transmission or delivered using an alternate communication channel such as manual delivery using a trusted courier between the first device and the second device).

[0008] Of course, it may be difficult to communicate the secret over a secure communication channel for any number of reasons. For example, the number of second devices may become large. As a result, not only is communication of the secret difficult simply as a result of the number of second devices, but the secrecy of the secrecy code may be called into question because it is shared with a large number of second devices. In addition, access to the second devices over a secure communications channel in certain networks may be problematic.

[0009] It would be useful to allow verification of a configuration file (or other data file) by a second device in an unsecure network without need to provide for secure communication of a secret code between the second device and the first device.

SUMMARY OF THE INVENTION

[0010] A method and apparatus for providing message authentication between a first device such as a provisioning server and a plurality of other devices (such as cable modems) without need to share a secret key between the first device and the plurality of second devices is described. The device providing the message computes two hash functions. The first hash function is computed over the entire data file but without use of any secret key. The second hash function is computed over at least a portion of the data file using a secret key. In some embodiments, the portion of the data file used in the computation of the second hash function may include the results of the first hash function. Thus, when a device receives the file and the hash function values, it can recompute the first hash function without need for the secret key. This allows detection of unsophisticated interloper where only the data file, but not the hash function was modified. The device can then send at least a portion of the data file, together with the two hash values, to another device (such as a cable modem termination system) who is trusted with the secret key. The other device can verify the second hash function. If the second hash function is not verified, the other device can send a message back to the second device informing it that the verification failed.

BRIEF DESCRIPTION OF THE DRAWINGS

[0011]FIG. 1 is an overall diagram of a cable modem network as may implement the present invention.

[0012]FIG. 2 is a flow diagram illustrating communication between a cable modem, a cable modem termination system and a provisioning system as may be utilized by an embodiment of the present invention.

[0013]FIG. 3 is a flow diagram illustrating communication between a cable modem, a cable modem termination system, a provisioning system and an interloper as may be utilized by an embodiment of the present invention.

[0014]FIG. 4 is a block diagram illustrating aspects of a cable modem as may be utilized by an embodiment of the present invention.

[0015]FIG. 5 is a block diagram illustrating aspects of a provisioning system as may be utilized by an embodiment of the present invention.

[0016]FIG. 6 is a block diagram illustrating aspects of a cable modem termination system as may be utilized by an embodiment of the present invention.

[0017]FIG. 7 is a diagram illustrating a format of a portion of messages as may be communicated between the provisioning server and the cable modem in an embodiment of the present invention.

[0018]FIG. 8 is a flow diagram illustrating a method of creating a configuration file as may be utilized by an embodiment of the present invention.

[0019] For ease of reference, it might be pointed out that reference numerals in all of the accompanying drawings typically are in the form “drawing number” followed by two digits, xx; for example, reference numerals on FIG. 1 may be numbered 1xx; on FIG. 3, reference numerals may be numbered 3xx. In certain cases, a reference numeral may be introduced on one drawing and the same reference numeral may be utilized on other drawings to refer to the same item.

DETAILED DESCRIPTION OF AN EMBODIMENT OF THE PRESENT INVENTION

[0020]FIG. 1 illustrates an overall diagram of a cable modem network as may utilize the present invention. The present invention may be implemented in alternative networks. It would be most useful in networks requiring communication of a data file between a first device and a second device over an insecure communication channel where it is desirable to verify that the data file was not altered in transit between the first device and the second device.

[0021] In the described embodiment, the network comprises a provisioning system 101, a cable modem termination system (CMTS) 102 coupled in communication with the provisioning system over a network 106 and a plurality of cable modems (CM) 104A to 104Z. In addition to communication over the network cloud 106, the provisioning system is coupled to communicate with the CMTS over a secure communication channel 108. The secure communication channel may be any of a number of communication channels. For example, rather than providing a separate communication channel, information may be encrypted by the provisioning server 101 and decrypted by the CMTS 102. Alternatively, a separate physical channel may be provided or a manual means of communication information using a trusted courier may be utilized.

[0022] The network cloud 106 may be any of a number of conventional networks. In the described embodiment, an IP network is utilized. This network does not need to be a secure network.

[0023] A plurality of CMTS devices (such as CMTS 103) may be coupled in communication with a provisioning system 101. As illustrated, CMTS 103 is coupled in communication with the provisioning system over network cloud 106 and over secure transmission channel 107.

[0024] The provisioning system stores a data file for each of the cable modems 104A to 104Z. The provisioning information for each cable modem is based on the cable modem subscriber's subscription information. The provisioning system may comprise any of a number of conventional server platforms configured as will be described to in greater detail in connection with FIG. 5 to implement the present invention.

[0025] In the described embodiment, the data file comprises a number of parameters where each parameter is in the format:

[0026] type: length: value

[0027] where

[0028] a) type is a single-octet identifier which defines the parameter

[0029] b) length is a single octet containing the length of the value field (not including type and length fields); and

[0030] c) value is a field of length from one to 254 octets containing the specific value for the parameter.

[0031] In the described embodiment, the configuration settings are divided into three types:

[0032] a) standard configuration settings which must be present including:

[0033] Downstream Frequency Configuration Setting

[0034] Upstream Channel ID Configuration Setting

[0035] Network Access Configuration Setting

[0036] End Configuration Setting

[0037] b) standard configuration settings which may be present including;

[0038] Quality of Service Configuration Setting

[0039] Vendor ID Configuration Setting

[0040] Software Upgrade Filename Configuration Setting

[0041] SNMP Write-Access Control

[0042] SNMP MIB Object

[0043] Pad Configuration Setting and

[0044] c) vendor-specific configuration settings.

[0045] It is desirable to communication data file between the provisioning system 101 and each of the cable modems 104A to 104Z. However, it is also desired that the data file is not altered by the cable modems 104A to 104Z or by an interloper which may have access to the network. As will be described, at least a portion of the data file is communicated to the CMTS 102 by the cable modems 104A to 104Z. It is also desirable that the portion of the data file is not altered in transit between the transmitting data modem and the CMTS 102.

[0046] However, as can be appreciated, there may be a large number of cable modems coupled in the network and serviced by provisioning system 101. Therefore, communication of the data file over a secure channel is difficult. Furthermore, unless a separate secret code is provided for each cable modem, the secret code will be shared with a large number of cable modems and it may not be possible to trust all of the cable modem subscribers with the secret code.

[0047]FIG. 2 provides a flow diagram which is useful for describing a method of the described embodiment for communicating a data file between the provisioning system 101 and the individual cable modems 104A to 104Z over the insecure network cloud 106 and cable 109 while allowing verification of the data file by both the cable modems and the CMTS 102.

[0048] Initially, the provisioning information is requested by a cable modem such as cable modem 104A, step 201. The request is sent by the cable modem 104A over the cable 109 to the CMTS 102 where it is transmitted through the cloud 106 to the provisioning server 101.

[0049] The configuration file is generated by the provisioning server 101 in response to receiving the provisioning information request. FIG. 8 provides a flow diagram illustrating steps utilized in the described embodiment for generating the configuration. Initially, entries are created in the configuration for each parameter required by the cable modem making the request, step 801. The parameters may be stored as a data file 502. Next, first integrity check information is generated by a calculation circuit 512 using as an input the parameters from the data file 502, step 802. The integrity check information is sometimes alternatively referred to as “message integrity check” or MIC. The calculation circuit 512 in the described embodiment calculates a digest using the MD5 algorithm as specified in RFC 2104 as the first integrity check information. In the described embodiment, the first integrity check information is calculated over fields as illustrated in Table 1, below: TABLE 1 type, length, value for parameter 1 type, length, value for parameter 2 type, length, value for parameter n

[0050] where parameters 1, 2 ... n correspond to the parameters described above.

[0051] It is noted that the first integrity value was not calculated using any secret value. Therefore, it would be possible for any interested interloper to change any parameter and recalculate the first integrity check information. Thus, the receiving device, e.g., the cable modem, would not be able to detect that the parameter had been altered through use of the first integrity check value. As will be seen, the present invention provides a method allowing the receiving device to verify integrity of the parameters without need to communicate a secret code to the receiving device.

[0052] Next, the second integrity check information is generated, step 803 Before discussing in greater detail the calculation of the second integrity check information, it is worthwhile to note that certain, but not necessarily all, of the parameters sent to the cable modem of the described embodiment must be shared with the CMTS. Therefore, the second integrity check information is calculated using as inputs a portion of the data file comprising the parameters which are required to be shared with the CMTS, a first integrity check information and a secret value or key. One advantage of using the first integrity check value as one of the inputs, as will be seen, is that the CMTS will be able to verify for the cable modem that none of parameters in the data file were changed during the communication over the insecure channel even though less than all of the parameters may be communicated back to the CMTS.

[0053] The resulting data structure including the parameters, the first integrity check information and the second integrity check information is illustrated in FIG. 7. In addition, in the described embodiment, an end of data marker is postpended to the data structure, step 804.

[0054] Referring again to FIG. 2, the configuration file (including the parameters, the first integrity check information, the second integrity check information and the end of data marker is transmitted by the provisioning server 101 to the cable modem 104A, step 206. While the described embodiment provides for transmission over network cloud 106 to CMTS 102 and then on cable 109 to cable modem 104A, the configuration file may be provided to the cable modem 104A using any of a number of alternative methods without departure from the spirit and scope of the present invention.

[0055] The cable modem 104A receives the configuration file at receive circuit 402 and performs an MD5 digest on the parameter portions (illustrated as data file 412) of the configuration file in order to calculate an integrity check value. If the calculated integrity check value does not match the first integrity check value, the cable modem discards the configuration file because it is assumed that portions of the configuration file were tampered with while enroute from the provisioning server. This verification is illustrated in FIG. 4 by use of verification circuit 422 which receives as inputs data file 412 and first integrity check information 413. After calculating the MD5 digest over the data file, a comparison is made by circuit 422 of the calculated integrity value and the first integrity check information and a verification signal is provided indicating whether or not a match occurs. The second integrity check information 414 is received and stored at the cable mode 104 as illustrated, but is not directly utilized by the cable modem.

[0056] Of course, as has been mentioned, a sophisticated interloper may tamper with the configuration file and the tampering will go undetected by this step if the interloper simply recalculates the first integrity check value after changing one or more selected parameters.

[0057] In any event, assuming that the first integrity check information is verified, the cable modem 104 extracts from the data file 412 the parameters required to be sent to the CMTS 102, step 208. In the described embodiment, these parameters comprise:

[0058] Downstream Frequency Configuration Setting

[0059] Upstream Channel ID Configuration Setting

[0060] Network Access Configuration Setting

[0061] Quality of Service Configuration Setting

[0062] Modem Capabilities Configuration Setting

[0063] Vendor ID Configuration Setting

[0064] Vendor specific extensions

[0065] A registration request is then sent by the cable modem 104 to the CMTS over the transmit circuit 403 and cable 108, step 209. In addition to the parameters specified above, the contents of the registration request include the following fields:

[0066] the first integrity check information;

[0067] the second integrity check information; and

[0068] the cable modem IP address

[0069] The CMTS receives the message on a receive circuit 601 as is illustrated in high level block diagram form by FIG. 6. The secret code used by provisioning system 101 was earlier provided to the CMTS over a secure channel 108 and is stored as secret 603.

[0070] The CMTS 102 verifies the second integrity check information by performing an MD5 digest over the transmitted parameters, the first integrity check information, and the secret 603 using a verification circuit 602, step 211. If the calculated integrity check information and the second integrity check information do not match, the registration request is rejected and an authorization failed message is returned as the registration response, step 217. If there is a match, the cable modem parameters are installed at the CMTS 102, step 215 and a valid registration response is returned.

[0071] It will be appreciated that when the cable modem receives a valid registration response, it can assume that no parameters were changed enroute between the provisioning system 101 and the cable modem. If there had been any change (and if the first integrity check information had also been modified by the interloper), the CMTS would not have calculated a matching integrity check value. This will be appreciated because the first integrity check value was an input to calculation of the second integrity check value.

[0072]FIG. 3 illustrates the interloper problem in greater detail. As is illustrated by FIG. 3, a provisioning information request is sent to the provisioning system, step 201, as was described in connection with FIG. 2. The configuration file is generated and transmitted, step 302. However, in the case, an interloper intercepts the configuration file and changes a parameter, step 303. For sake of example, assume that the parameter is one of the parameters which is not ultimately sent to the CMTS by the cable modem. As has been mentioned, a relatively unsophisticated interloper may simply change the parameter and not change the first integrity check information. As was discussed, this type of interference with the transmission of the configuration file will be detected by the cable modem directly. However, the sophisticated interloper may recalculate the first integrity check information, step 304. Although this interloper is termed a sophisticated interloper, in practice, recalculating the first integrity check is not particularly difficult since it is calculated based on information which is transmitted in the clear on an insecure channel using a standard algorithm.

[0073] In any event, the modified configuration is then received at the cable modem, step 305. Assuming the involvement of a “sophisticated interloper”, the cable modem verifies the first integrity check information, step 207, extracts the parameters for the CMTS, step 208 and transmits a registration request, step 209, all as were described in connection with FIG. 2.

[0074] As was described in connection with FIG. 2, the CMTS verifies the second integrity check information, step 211. Because the first integrity check information was changed by the interloper, this check fails, and an authorization failure message is transmitted back to the cable modem. This failure is detected even though the parameter changed by the interloper is not transmitted to the CMTS.

ALTERNATIVES TO THE PREFERRED EMBODIMENT OF THE PRESENT INVENTION

[0075] There are, of course, alternatives to the described embodiment which are within the reach of one of ordinary skill in the relevant art. The present invention is intended to be limited only by the claims presented below.

[0076] Thus, what has been described is method and apparatus for allowing authentication of data files communicated from a central device (the provisioning system) to any number of second devices without need to share a secret code with the second devices. 

We claim:
 1. A method of receiving a data file from a first device at a second device comprising the steps of: a) receiving at the second device the data file together with a first integrity check information, the first integrity check information calculated using as a first input at least a portion of the data file and as a second input a secret unknown to the second device; b) transmitting by the second device a message comprising at least the portion of the data file and the first integrity check information.
 2. The method as recited by claim 1 wherein the first device is a provisioning server.
 3. The method as recited by claim 1 wherein the second device is a cable modem.
 4. The method as recited by claim 1 further comprising the step of verifying the integrity check information at a third device.
 5. The method as recited by claim 4 wherein the third device is a cable modem termination station.
 6. The method as recited by claim 1 wherein the second device further receives second integrity check information, the second integrity check information used in calculation of the first integrity check information allowing integrity verification of the data file by the second device.
 7. The method as recited by claim 6 wherein the second integrity information is transmitted by the second device.
 8. The method as recited by claim 7 wherein the second integrity information is verified by the third device.
 9. The method as recited by claim 1 further comprising the step of receiving at the second device a registration response.
 10. The method as recited by claim 6 wherein the second device performs integrity verification using an MD5 algorithm.
 11. A device comprising: a first circuit coupled to receive a data file and a first integrity check information, the first integrity check information calculated based on a secret unknown to the device; a second circuit coupled to transmit at least a portion of the data file and the first integrity information.
 12. The device as recited by claim 11 where the device is a cable modem.
 13. The device as recited by claim 11 wherein the first circuit is further coupled to receive a second integrity check information.
 14. The device as recited by claim 13 wherein the second integrity check information is contained within the data file.
 15. The device as recited by claim 11 wherein the first circuit is coupled in communication with a provisioning system.
 16. The device as recited by claim 15 wherein the first circuit is coupled with the provisioning system through a cable modem termination system over a cable.
 17. The device as recited by claim 11 wherein the second circuit is coupled in communication with a cable modem termination system.
 18. The device as recited by claim 14 wherein the verification circuit calculates a verification value using an MD5 verification algorithm.
 19. A device comprising: first means for receiving a data file and a first integrity check information, the first integrity check information calculated based on a secret unknown to the device; second means for transmitting at least a portion of the data file and the first integrity check information.
 20. The device as recited by claim 19 wherein the device is a cable modem.
 21. The device as recited by claim 19 wherein the first means is further for receiving a second integrity check information.
 22. The device as recited by claim 21 further comprising a verification circuit having as a first input the data file and as a second input the second integrity information and providing as an output a signal indicating whether the data file is verified.
 23. A method of providing a data file from a first device to a second device comprising the steps of: a) assembling a data file at first device; b) calculating a first integrity check information at the first device, the first integrity check information calculated based on the data file; c) calculating a second integrity check information at the first device, the second integrity check information calculated based on a portion of the data file, the first integrity check information, and a secret; d) transmitting a message from the first device, the message comprising the data file, the first integrity information and the second integrity information.
 24. The method as recited by claim 23 wherein the first device is a provisioning server.
 25. The method as recited by claim 23 wherein the second device is a cable modem.
 26. The method as recited by claim 23 wherein the first integrity check information is calculated using an MD5 algorithm.
 27. The method as recited by claim 25 wherein the second integrity check information is calculated using an MD5 algorithm.
 28. The method as recited by claim 23 wherein the message is transmitted over a cable.
 29. The method as recited by claim 23 wherein the message is transmitted through a cable modem termination system.
 30. The method as recited by claim 23 wherein the secret is transmitted to a cable modem termination system.
 31. The method as recited by claim 30 wherein the secret is transmitted over a secure transmission channel.
 32. The method as recited by claim 31 wherein the message is transmitted over on insecure transmission channel.
 33. A device comprising: a) a first data store having stored therein a data file; b) a second data store having stored therein a secret; c) a calculation circuit having a first input coupled to receive the data file, a second input coupled to receive the secret, and an output providing a first integrity check information calculated without use of the secret and a second integrity check information calculated using the secret; and d) a transmit circuit coupled to receive the data file, the first integrity check information and the second integrity check information.
 34. The device as recited by claim 33 wherein the device is a provisioning system.
 35. The device as recited by claim 33 wherein the device is coupled in communication with a cable modem.
 36. The device as recited by claim 33 wherein the device is coupled in communication with a cable modem through a cable modem termination system.
 37. A method for verifying a portion of a data file comprising the steps of: a) receiving at a first device a message comprising a portion of a data file, a first integrity check information and a second integrity check information; b) verifying the portion of the data file against the first integrity check information; and c) verifying the portion of the data file against the second integrity check information and a secret.
 38. The method as recited by claim 37 wherein the step of verifying the portion of the data file against the second integrity check information and the secret further comprises verifying against the first integrity check information.
 39. The method as recited by claim 37 wherein the first device is a cable modem termination system.
 40. The method as recited by claim 37 further comprising the step of transmitting an authorization succeeded message if both of the verification steps are passed.
 41. The method as recited by claim 37 further comprising the step of transmitting an authorization failed message if either of the verification steps fail.
 42. The method as recited by claim 40 wherein the authorization succeeded message is transmitted on a cable.
 43. The method as recited by claim 37 wherein the message is received over an insecure channel.
 44. The method as recited by claim 37 wherein the secret is received by the device over a secure channel.
 45. The method as recited by claim 44 wherein the secret is received from a provisioning system.
 46. A device comprising: a) a receive circuit coupled to receive a message comprising a portion of a data file, a first integrity check information and a second integrity check information; b) a verification circuit having as inputs the data file, the first integrity check information, the second integrity check information and a secret and providing as an output a verification signal.
 47. The device as recited by claim 46 wherein the device is a cable modem termination system.
 48. The device as recited by claim 46 wherein the receive circuit is coupled in communication with a cable modem.
 49. The device as recited by claim 46 further comprising a transmit circuit coupled to transmit an authorization message to a cable modem. 